جزوه · فصل چهارم · جلسه ۴۰ · مدیریت فایل‌ها در لینوکس ← بازگشت به فهرست
📘 فصل چهارم · جلسه ۴۰ مدیریت فایل‌ها در لینوکس
📅 تاریخ: دوشنبه، ۲۶ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat

▍ مقدمه

در لینوکس، مدیریت فایل‌ها یکی از مهارت‌های پایه و ضروری است. در این جلسه با ابزارهای اصلی ایجاد، لیست کردن، کپی، جابجایی، حذف و ایجاد دایرکتوری آشنا می‌شویم. همچنین با استفاده از کاراکترهای ویژه (Wildcards) برای جستجوی فایل‌ها با الگوهای خاص آشنا می‌شویم.

📁 قبل از شروع، یه نکته مهم:

تمام دستورات این جلسه در دایرکتوری‌های مختلف قابل اجرا هستند. برای تمرین بهتر، می‌توانید یک دایرکتوری تست مثل ~/test بسازید و در آن تمرین کنید.

▍ مشاهده مسیر جاری و لیست فایل‌ها

• دستور pwd (Print Working Directory)

این دستور مسیر کامل دایرکتوری فعلی شما را نمایش می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ pwd /home/ya3in

توضیح: این دستور مسیری که در آن هستید را نشان می‌دهد. در این مثال، کاربر ya3in در دایرکتوری خانه خود (/home/ya3in) قرار دارد.

• دستور ls (List)

این دستور لیست فایل‌ها و دایرکتوری‌های موجود در مسیر جاری را نمایش می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ ls BLEeding deep-eye Desktop Documents Downloads Music Pictures Projects Public Templates tmux Videos

توضیح: ls بدون گزینه، فقط نام فایل‌ها و دایرکتوری‌ها را در یک خط نمایش می‌دهد.

💡 گزینه‌های پرکاربرد ls:
  • ls -l → نمایش با جزئیات کامل (مجوزها، مالک، اندازه، زمان تغییر)
  • ls -a → نمایش همه فایل‌ها، از جمله فایل‌های مخفی (شروع با .)
  • ls -la → ترکیب دو گزینه بالا
  • ls -R → نمایش بازگشتی محتویات زیردایرکتوری‌ها
  • ls -lh → نمایش اندازه فایل‌ها به صورت قابل خواندن (Human-readable)

• استفاده از echo * برای لیست ساده

دستور echo * هم می‌تواند لیستی از فایل‌ها و دایرکتوری‌ها را نمایش دهد، اما به شکل ساده‌تر.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ echo * yasin yasin2 yasin3

توضیح: echo * نام همه فایل‌ها و دایرکتوری‌ها را در یک خط و با فاصله نمایش می‌دهد. این روش برای اسکریپت‌نویسی مفید است.

▍ ایجاد فایل

• روش اول: استفاده از touch

touch یک فایل خالی ایجاد می‌کند یا زمان تغییر فایل را به‌روز می‌کند.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ touch yasin └─$ ls yasin

توضیح: touch yasin یک فایل خالی به نام yasin در دایرکتوری جاری ایجاد کرد.

• روش دوم: استفاده از ویرایشگرهای متنی

با ویرایشگرهایی مانند nano، vim یا gedit می‌توانید فایل ایجاد و محتوای آن را ویرایش کنید.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ nano yasin2

توضیح: nano yasin2 فایل yasin2 را در ویرایشگر nano باز می‌کند. می‌توانید متن خود را وارد کنید و با Ctrl+O ذخیره و با Ctrl+X خارج شوید.

• روش سوم: استفاده از > (Redirection)

با علامت > می‌توانید خروجی یک دستور را در یک فایل ذخیره کنید یا یک فایل خالی بسازید.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ > yasin3 └─$ ls yasin yasin2 yasin3

توضیح: > yasin3 یک فایل خالی به نام yasin3 ایجاد می‌کند. این روش معادل touch است اما با استفاده از Redirection.

▍ کاراکترهای ویژه (Wildcards) برای جستجو

با استفاده از کاراکترهای ویژه می‌توانید فایل‌هایی با الگوهای خاص را پیدا کنید.

• ستاره (*) — هر تعداد کاراکتر

* به معنای صفر یا چند کاراکتر است.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ ls *.txt a.txt b.txt

توضیح: *.txt همه فایل‌هایی که به .txt ختم می‌شوند را نمایش می‌دهد.

📝 مثال دیگر:
┌──(ya3in㉿kali)-[~] └─$ ls c*.txt cake.txt carmelPie.txt carrotCake.txt

توضیح: فایل‌هایی که با c شروع می‌شوند و به .txt ختم می‌شوند.

• علامت سوال (?) — یک کاراکتر

? به معنای دقیقاً یک کاراکتر است.

┌──(ya3in㉿kali)-[~] └─$ ls b?t bat bet bit bot

توضیح: b?t فایل‌هایی که با b شروع می‌شوند، با هر کاراکتری در وسط و با t ختم می‌شوند را نمایش می‌دهد.

┌──(ya3in㉿kali)-[~] └─$ ls b??d bard bird

توضیح: b??d فایل‌هایی که با b شروع می‌شوند، دو کاراکتر دلخواه در وسط و با d ختم می‌شوند.

▍ مدیریت دایرکتوری‌ها

• ایجاد دایرکتوری با mkdir

mkdir (Make Directory) یک دایرکتوری جدید ایجاد می‌کند.

┌──(ya3in㉿kali)-[~/Desktop] └─$ mkdir file └─$ ls file Hiddify-Linux-x64-AppImage.AppImage 'جزوه lpic'

توضیح: mkdir file یک دایرکتوری به نام file در دسکتاپ ایجاد کرد.

• ایجاد دایرکتوری‌های تو در تو با -p

با گزینه -p می‌توانید چندین سطح دایرکتوری را همزمان ایجاد کنید.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ mkdir -p 1/2/3 └─$ tree . ├── 1 │ └── 2 │ └── 3 ├── a.txt ├── b.txt ├── yasin ├── yasin2 └── yasin3

توضیح: mkdir -p 1/2/3 سه سطح دایرکتوری 1/2/3 را به‌صورت یکجا ایجاد کرد. گزینه -p باعث می‌شود اگر دایرکتوری والد وجود نداشته باشد، آن را نیز ایجاد کند.

💡 نکته:

برای دیدن ساختار درختی دایرکتوری‌ها، از دستور tree استفاده کنید. اگر این دستور در سیستم شما نصب نیست، با sudo apt install tree آن را نصب کنید.

▍ کپی کردن فایل‌ها و دایرکتوری‌ها

• دستور cp (Copy)

cp برای کپی کردن فایل‌ها و دایرکتوری‌ها استفاده می‌شود.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ cp yasin yasin_copy └─$ ls yasin yasin_copy

توضیح: cp yasin yasin_copy فایل yasin را با نام yasin_copy کپی می‌کند.

📌 گزینه‌های مهم cp:
  • cp -r → کپی بازگشتی (برای کپی کردن دایرکتوری‌ها)
  • cp -i → قبل از بازنویسی، از کاربر تأیید می‌گیرد
  • cp -u → فقط فایل‌های جدیدتر را کپی می‌کند
  • cp -v → نمایش جزئیات کپی

▍ جابجایی یا تغییر نام فایل‌ها

• دستور mv (Move)

mv برای جابجایی یا تغییر نام فایل‌ها و دایرکتوری‌ها استفاده می‌شود.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ mv yasin yasinnnn └─$ ls 1 a.txt b.txt yasin2 yasin3 yasinnnn

توضیح: mv yasin yasinnnn فایل yasin را به yasinnnn تغییر نام می‌دهد. همچنین می‌توانید با mv فایل را به دایرکتوری دیگری جابجا کنید.

▍ حذف فایل‌ها و دایرکتوری‌ها

⚠️ هشدار مهم:

دستورات حذف در لینوکس غیرقابل بازگشت هستند. قبل از استفاده از rm، دقت کنید که فایل یا دایرکتوری مورد نظر را اشتباه پاک نکنید.

• دستور rm (Remove)

rm برای حذف فایل‌ها و دایرکتوری‌ها استفاده می‌شود.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ rm yasin3 └─$ ls 1 a.txt b.txt yasin2 yasinnnn

توضیح: rm yasin3 فایل yasin3 را حذف می‌کند.

📌 گزینه‌های مهم rm:
  • rm -r → حذف بازگشتی (برای حذف دایرکتوری‌ها)
  • rm -f → حذف اجباری بدون تأیید (Force)
  • rm -rf → حذف بازگشتی و اجباری (پرکاربرد و خطرناک!)
  • rm -i → قبل از هر حذف، از کاربر تأیید می‌گیرد

• حذف دایرکتوری خالی با rmdir

rmdir فقط دایرکتوری‌های خالی را حذف می‌کند.

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ rmdir 1/2/3

توضیح: rmdir 1/2/3 دایرکتوری 3 را حذف می‌کند، اما اگر خالی نباشد، خطا می‌دهد.

• حذف همه فایل‌ها با rm -rf *

┌──(ya3in㉿kali)-[~/Desktop/file] └─$ rm -fr * └─$ ls (خالی)

توضیح: rm -fr * همه فایل‌ها و دایرکتوری‌های موجود در دایرکتوری جاری را به‌طور کامل حذف می‌کند. -f (force) باعث می‌شود بدون تأیید حذف کند و -r (recursive) دایرکتوری‌ها را نیز حذف می‌کند.

✅ جمع‌بندی دستورات این جلسه:
  • pwd → نمایش مسیر جاری
  • ls → لیست فایل‌ها و دایرکتوری‌ها
  • touch → ایجاد فایل خالی
  • nano / vim → ویرایش فایل
  • > → ایجاد فایل با Redirection
  • mkdir → ایجاد دایرکتوری
  • cp → کپی کردن
  • mv → جابجایی یا تغییر نام
  • rm → حذف فایل
  • rmdir → حذف دایرکتوری خالی
  • rm -rf → حذف کامل (با احتیاط!)
  • * و ? → کاراکترهای ویژه برای جستجو